<?php

require_once("MateriasFachada.php");

//Utiliza el patron Singleton
class AgregarMateriaVista {

    private static $instance;

    private function __construct() {
        
    }

    public static function getInstance() { //metodo Singleton
        if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
        }
        return self::$instance;
    }

    public function generateMateriaForm($user, $actionPage) {
        $form = "<form name=\"addMateria\" action=\"$actionPage\" method=\"post\" onsubmit=\"return validacionFormaAgregarMateria()\">";
        $form .= "<fieldset>";
        $form .= "<legend>Datos basicos</legend>";
        $form .= "<input type=\"hidden\" name=user value=\"$user\">";
        $form .= $this->generateMateriasDropDown();
        $form .= $this->generateTrimestreDropDown();
        $form .= $this->generateAniosDropDown();
        $form .= "Calificacion: <input type=\"text\" name=\"calificacion\"/><br/>";
        $form .= "<input type=\"submit\" value=\"Continuar\" />";
        $form .= "</fieldset>";
        $form .= "</form>";
        return $form;
    }

    public function generateMateriaProfesorForm($user, $materia, $trimestre, $anio, $calificacion, $actionPage) {
        $form = "<form name=\"addProfesor\" action=\"$actionPage\" method=\"post\" onsubmit=\"return validacionFormaAgregarProfesor()\">";
        $form .= "<fieldset>";
        $form .= "<legend>Información del profesor</legend>";
        $form .= "<input type=\"hidden\" name=\"user\" value=\"$user\">";
        $form .= "<input type=\"hidden\" name=\"materia\" value=\"$materia\">";
        $form .= "<input type=\"hidden\" name=\"trimestre\" value=\"$trimestre\">";
        $form .= "<input type=\"hidden\" name=\"anio\" value=\"$anio\">";
        $form .= "<input type=\"hidden\" name=\"calificacion\" value=\"$calificacion\">";
        $form .= "Nombre Profesor: <input type=\"text\" name=\"nombreP\"/><br/>";
        $form .= "Apellido Profesor: <input type=\"text\" name=\"apellidoP\"/><br/>";
        $form .= "<input type=\"submit\" value=\"Continuar\" />";
        $form .= "</fieldset>";
        $form .= "</form>";
        return $form;
    }

    private function generateMateriasDropDown() {
        $materiasFachada = MateriasFachada::getInstance();
        $materiasPensumArray = $materiasFachada->obtenerMateriasPensum();
        $dropDownMenu = "<select name=\"materia\">";
        $dropDownMenu .= "<option value=\"NONE\">Materia</option>";
        foreach ($materiasPensumArray as $materia) {
            $dropDownMenu .= "<option value=\"$materia[0]\">" . "$materia[0]" . " " . "$materia[1]" . "</option>";
        }
        $dropDownMenu .= "</select>";
        return $dropDownMenu;
    }

    private function generateTrimestreDropDown() {
        $materiasFachada = MateriasFachada::getInstance();
        $dropDownMenu = "<select name=\"trimestre\">";
        $dropDownMenu .= "<option value=\"NONE\">Trimestre</option>
                          <option value=\"Ene Mar\">Enero - Marzo</option>
                          <option value=\"Abr Jul\">Abril - Julio</option>
                          <option value=\"Jul Sep\">Julio - Septiembre (Verano)</option>
                          <option value=\"Sep Dic\">Septiembre - Diciembre</option>";
        $dropDownMenu .= "</select>";

        return $dropDownMenu;
    }

    private function generateAniosDropDown() {
        $materiasFachada = MateriasFachada::getInstance();
        $aniosValidos = $materiasFachada->obtenerAniosValidos();
        $dropDownMenu = "<select name=\"anio\">";
        $dropDownMenu .= "<option value=\"NONE\">Año</option>";
        foreach ($aniosValidos as $anio) {
            $dropDownMenu .= "<option value=\"$anio\">$anio</option>";
        }
        $dropDownMenu .= "</select>";

        return $dropDownMenu;
    }

    private function generateProfesoresDropDown($nombreP, $apellidoP) {
        $materiasFachada = MateriasFachada::getInstance();
        $profesores = $materiasFachada->buscarProfesor($nombreP, $apellidoP);
        if (count($profesores) == 0) {
            $dropDownMenu = "<p>No se encontraron profesores registrados con ese
                nombre y/o apellido. <br/> Se utilizará el nombre y/o apellido suministrados para identificar al profesor.</p>";
        } else {
            $dropDownMenu = "<p>Los siguientes profesores están registrados en Pinf.<br/>
                            ¿Es el tuyo alguno de ellos?<br/>
                            Si seleccionas que no, entonces se usará el nombre y/o apellido sumunistrados
                            en el paso anterior como nombre y/o apellidos del profesor<br/></p>";
            $dropDownMenu .= "<select name=\"profesorID\">";
            $dropDownMenu .= "<option value=\"\">No, ninguno de estos es el que busco</option>";
            foreach ($profesores as $profesor) {
                $dropDownMenu .= "<option value=\"$profesor[2]\">" . $profesor[0] . " " . $profesor[1] . "</option>";
            }
            $dropDownMenu .= "</select>";
        }
        return $dropDownMenu;
    }

    public function generateBusquedaForm($user, $materia, $trimestre, $anio, $calificacion, $nombreP, $apellidoP, $actionPage) {
        $form = "<form name=\"addProfesorSearch\" action=\"$actionPage\" method=\"post\" onsubmit=\"return validacionFormaAgregarProfesor()\">";
        $form .= "<fieldset>";
        $form .= "<legend>Profesores registrados</legend>";
        $form .= "<input type=\"hidden\" name=\"user\" value=\"$user\">";
        $form .= "<input type=\"hidden\" name=\"materia\" value=\"$materia\">";
        $form .= "<input type=\"hidden\" name=\"trimestre\" value=\"$trimestre\">";
        $form .= "<input type=\"hidden\" name=\"anio\" value=\"$anio\">";
        $form .= "<input type=\"hidden\" name=\"calificacion\" value=\"$calificacion\">";
        $form .= "<input type=\"hidden\" name=\"nombreP\" value=\"$nombreP\">";
        $form .= "<input type=\"hidden\" name=\"apellidoP\" value=\"$apellidoP\">";
        $form .= $this->generateProfesoresDropDown($nombreP, $apellidoP);
        $form .= "<input type=\"submit\" value=\"Continuar\" />";
        $form .= "</fieldset>";
        $form .= "</form>";
        return $form;
    }

}

?>
